class SolicitudesDocumentoController < ApplicationController
  #MODULE: Utilitarios

  # GET /solicitudes_documento
  # GET /solicitudes_documento.xml
  def index
  end

  # GET /solicitudes_documento/1
  # GET /solicitudes_documento/1.xml
  def show
    @solicitud_documento = SolicitudDocumento.find(params[:id])
    
    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @solicitud_documento }
    end
  end

  # GET /solicitudes_documento/new
  # GET /solicitudes_documento/new.xml
  def new
    @solicitud_documento = SolicitudDocumento.new
    
    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @solicitud_documento }
    end
  end

  # GET /solicitudes_documento/1/edit
  def edit
    @solicitud_documento = SolicitudDocumento.find(params[:id])
  end

  # POST /solicitudes_documento
  # POST /solicitudes_documento.xml
  def create
    @solicitud_documento = SolicitudDocumento.new(params[:solicitud_documento])
    @solicitud_documento.usuario_id = current_user.id
    respond_to do |format|
      if @solicitud_documento.save
        flash[:notice] =  'SolicitudDocumento creada correctamente.'
        format.html { params[:oper].nil? ? redirect_to(@solicitud_documento) : render(:text => "Ok")}
        send_mail(self.class_name,"Perfil: Atención a los emails de Solicitud de Documentos")
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @solicitud_documento.errors, :status => :unprocessable_entity }
      end
    end
  end

  def send_mail(objeto,nombre_parametro,destinatarios=nil)
    destinatarios||=Parametro.destinatarios(nombre_parametro)
    unless destinatarios.nil?
      (objeto.class_name+"Mailer").constantize.send("deliver_#{objeto.class_name.underscore}_email",objeto,destinatarios)
    else
      flash[:error] =  'No se encontraron destinatarios.'
    end
  end

  # PUT /solicitudes_documento/1
  # PUT /solicitudes_documento/1.xml
  def update
    @solicitud_documento = SolicitudDocumento.find(params[:id])

    respond_to do |format|
      if @solicitud_documento.update_attributes(params[:solicitud_documento])
        flash[:notice] = 'SolicitudDocumento actualizado correctamente.'
        format.html { redirect_to(@solicitud_documento) }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @solicitud_documento.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /solicitudes_documento/1
  # DELETE /solicitudes_documento/1.xml
  def destroy
    @solicitud_documento = SolicitudDocumento.find(params[:id])
    @solicitud_documento.destroy

    respond_to do |format|
      format.html { redirect_to(solicitudes_documento_url) }
      format.xml  { head :ok }
    end
  end

  def datos #IGNORE
    #Realizar consulta
      
    clase = current_user.tiene_perfil?("Administrador") ? SolicitudDocumento : current_user.solicitudes_documentos

    registros, count = find_by_params(params, :class => clase)
    # Construct a hash from the ActiveRecord result
    return_data = Hash.new()
    return_data[:page] = params[:page]
    return_data[:total] = (count.to_f / params[:rows].to_i).ceil
    return_data[:records] = count

    return_data[:rows] = registros.collect{|u| {:id => u.id,
        :cell => [
          u.plantilla.nombre, u.entidad, u.fecha, u.usuario.nombre, u.motivo, u.hecho
        ]}}

    render :text => return_data.to_json, :layout => false
  end

  

end


